5 REM ********************************* * "BAY STREET" * 10 REM* FROM * * ROGER D. BURGE * 15 REM*BASED ON THE COMMODORE PET 2001* * PROGRAM "STOCK" * 20 REM* REVISED AND UPGRADED BY * * ROGER D. BURGE * 25 REM* CONVERTED TO THE COMMODORE 64 * * BY * 30 REM* ROGER D. BURGE * * #2667 * 35 REM* JULY,1984 * * FOR * 40 REM* TORONTO PET USERS GROUP INC. * * TORONTO, CANADA * 45 REM* CLASSIFICATION: * * RECREATIONAL,EDUCATIONAL * 50 REM********************************* 55 POKE53280,3:POKE53281,. 60 K=RND(-TI):X$="[158]" 65 DIMSN$(6),SA(6),PN$(6),PS(6,6),PA(6),DN(3),C$(6),C(6) 70 GOSUB150 75 FORR=1TONR 80 D1=INT(6*RND(1))+1 85 D2=INT(3*RND(1))+1 90 D3=INT(3*RND(1))+1:D3=5*2^(D3-1) 95 PRINTX$" " 100 PRINTX$SN$(D1);DN$(D2);D3 105 OND2GOSUB695,730,765 110 GOSUB1075:NEXT 115 IX=21:ML=1:PRINTX$"ONE MORE ROUND Y/N ? [157][157]";:GOSUB1150 120 IFWK$<>"N"ANDWK$<>"Y"THEN115 125 IFWK$="N"THENGOSUB790:GOTO1220 130 FORI=1TON2:GOSUB475:NEXT 135 IFN1=.THENZ=.:GOSUB910 140 PRINT"[147]";:GOSUB340 145 GOTO75 150 DATA"SILVER"," IND ","GRAIN "," OIL ","GOLD ","BONDS " 155 FORI=1TO6:SA(I)=100:READSN$(I):NEXT 160 DATA" UP "," DOWN"," DIV " 165 FORI=1TO3:READDN$(I):NEXT 170 DATA"","[150]","[158]","","[149]","[153]" 175 FORI=1TO6:READC$(I):NEXT 180 DATA1,10,7,6,9,13 185 FORI=1TO6:READC(I):NEXT 190 GOSUB1135 195 IX=20:ML=1:PRINT"[142]INSTRUCTIONS? (Y/N)";:GOSUB1150 200 IFWK$="Y"THENGOSUB1265:GOTO210 205 IFWK$<>"N"THEN190 210 IX=24:PRINT"HOW MANY PLAYERS? (1-6) [157]";:GOSUB1150 215 N2=VAL(WK$) 220 IFN2<1ORN2>6THEN210 225 IFN2=1THENN1=.:GOTO245 230 IX=29:PRINT"MAY YOUR 64 PLAY TOO? (Y/N) [157][157]"; 235 GOSUB1150:IFWK$<>"N"ANDWK$<>"Y"THEN230 240 N1=.:IFWK$="N"THENN1=1 245 FORI=1TON2 250 FORJ=1TO6:PS(I,J)=.:NEXT 255 PA(I)=5000 260 PRINT"PLAYER [157][157][157][157]";I;"WHAT IS YOUR NAME? ":ML=24 265 PRINT" [145]" 270 IX=.:GOSUB1150:PN$(I)=WK$ 275 IFLEN(WK$)=.ORLEFT$(WK$,1)=" "THEN260 280 NEXT 285 PN$(.)="YOUR 64":PA(.)=2000 290 FORI=1TO6:PS(.,I)=500:NEXT 295 GOSUB425 300 IFN1=.THENI=.:GOSUB545 305 IFN1THENGOSUB1135 310 PRINTLEFT$(X$,16)"[158]HOW MANY COMPLETE ROUNDS BEFORE BUYING 315 [153]"AND SELLING STOCKS (1-3)? CMDCMDCMD";:IX[178]26:ML[178]1:[141]1150 320 NR[178][197](WK$) 325 [139]NR[179]1[176]NR[177]3[167]310 330 NR[178]NR[172](1[171]N1[170]N2):[153]"LOAD";:[141]340 335 [142] 340 [153]"OPEN BAY STREET "; 345 [153]" FROM ROGER D. BURGE " 350 [129]K[178].[164]19:[153]"CMDSAVESAVE":[151]218,132:[130]:[153]""; 355 [129]I[178]190[164].[169][171]10 360 G$[178]"PRINT#":[139]I[178]100[167]G$[178]"" 365 GN$[178]" "[170][196](I):GN$[178][201](GN$,3):GN$[178]""[170]GN$[170]G$[170]"TAN" 370 [129]J[178]1[164]6:WK$[178]"TANTAN" 375 [139]SA(J)[177]I[167]WK$[178]C$(J)[170]" WAIT" 380 [139]SA(J)[178]I[167]WK$[178]C$(J)[170]"NEWNEW" 385 WK$[178]WK$[170]G$[170]"TAN":[139]J[179]6[167]WK$[178]WK$[170]"TANTANTAN" 390 GN$[178]GN$[170]WK$:[130] 395 I$[178][201]([196](I),[195]([196](I))[171]1) 400 [139][195](I$)[179]3[167][129]K[178][195](I$)[164]2:I$[178]I$[170]" ":[130] 405 [153]GN$""I$; 410 [130] 415 [153]" ";SN$(1);SN$(2);SN$(3);SN$(4);SN$(5);SN$(6) 420 [142] 425 [129]I[178]1[164]N2 430 [141]545 435 [153]"ONSYSYOU MUST BUY SOME STOCK":BS[178]1 440 [141]1030 445 [141]645 450 [139]SN[178]7[167][153]"SYSINSUFFICIENT FUNDS":[129]K[178].[164]2000:[130]:[141]545:[137]440 455 [141]475 460 [139]PA(I)[178]5000[167]430 465 [130] 470 [142] 475 [141]545 480 BS[178].:IX[178]28:ML[178]1:[153]"ONBUY, SELL OR NOTHING B/S/N? CMDCMD";:[141]1150 485 [139]WK$[179][177]"N"[175]WK$[179][177]"S"[175]WK$[179][177]"B"[167][153]:[153]"ONON":[137]480 490 [139]WK$[178]"B"[167]BS[178]1 495 [139]WK$[178]"N"[167][142] 500 SB$[178]WK$:[153]:[153]"ON 505 GOSUB1030 510 IFSB$="S"THENGOSUB670 515 IFSB$="B"THENGOSUB645 520 IFSN<7THEN475 525 IFSB$="S"THENPRINT"[158]YOU DON'T OWN ENOUGH STOCK" 530 IFSB$="B"THENPRINT"[158]YOU DON'T HAVE ENOUGH MONEY" 535 FORK=1TO2000:NEXT 540 GOTO475 545 PRINT"[147][158] BAY STREET "; 550 PRINT" FROM ROGER D. BURGE [146]"; 555 WK$=" PORTFOLIO - "+PN$(I):WK=INT((40-LEN(WK$))/2):FORK=1TOWK:WK$=" "+WK$ 560 NEXT:WK=40-LEN(WK$):FORK=1TOWK:WK$=WK$+" ":NEXT:PRINT"[159]"WK$ 565 PRINT" # DESC VALUE HOLDINGS" 570 PRINT" [163][160][160][163][163][163][163][160] [160][163][163][163][163][163][160] [160][163][163][163][163][163][163][163][163]" 575 FORK=1TO6 580 WK$=" "+STR$(SA(K)):V$=RIGHT$(WK$,3) 585 WK=PS(I,K):WK$=" "+STR$(WK) 590 :WK$=RIGHT$(WK$,7) 595 IFWK<1000THENH$=" "+WK$ 600 IFWK>500THENH$=LEFT$(WK$,4)+","+RIGHT$(WK$,3) 605 WK$=" "+STR$(K)+" " 610 PRINTWK$; 615 IFLEFT$(SN$(K),1)=" "THENPRINTRIGHT$(SN$(K),LEN(SN$(K))-1)" ";:GOTO625 620 PRINTSN$(K); 625 PRINT" ";V$;" ";H$ 630 NEXT 635 PRINT:PRINT"CASH ON HAND --- ";PA(I):PRINT 640 RETURN 645 WK=SA(SN)*SQ/100:PT=1 650 IFWK>PA(I)THENSN=7:RETURN 655 PA(I)=PA(I)-WK 660 PS(I,SN)=PS(I,SN)+SQ 665 RETURN 670 PT=1 675 IFSQ>PS(I,SN)THENSN=7:RETURN 680 PA(I)=PA(I)+SA(SN)*SQ/100 685 PS(I,SN)=PS(I,SN)-SQ 690 RETURN 695 SA(D1)=SA(D1)+D3 700 IFSA(D1)<200THENRETURN 705 SA(D1)=100 710 FORI=N1TON2 715 PS(I,D1)=PS(I,D1)*2 720 NEXT 725 RETURN 730 SA(D1)=SA(D1)-D3 735 IFSA(D1)>.THENRETURN 740 SA(D1)=100 745 FORI=N1TON2 750 PS(I,D1)=. 755 NEXT 760 RETURN 765 IFSA(D1)<100THENRETURN 770 FORI=N1TON2 775 :PA(I)=PA(I)+PS(I,D1)*D3/100 780 NEXT 785 RETURN 790 GOSUB1135:PRINT"PLAYER NAME CASH VALUE" 795 PRINT"[163][163][163][163][163][163][163][163][163][163][163] [163][163][163][163][163][163][163][163][163][163]" 800 FORK=N1TON2 805 FORJ=1TO6 810 ::PA(K)=PA(K)+SA(J)*PS(K,J)/100 815 NEXT 820 NEXT 825 FORK=N1TON2 830 :WK=-1 835 FORJ=N1TON2 840 IFPA(J)>WKTHENWK=PA(J):I=J 845 :NEXT 850 WK$=" "+STR$(PA(I)) 855 WK$=RIGHT$(WK$,8):V$=LEFT$(WK$,2) 860 IFV$<>" "THENV$=V$+"," 865 IFV$= " "THENV$=V$+" " 870 :V$=V$+MID$(WK$,3,3) 875 IFRIGHT$(V$,1)<>" "THENV$=V$+"," 880 IFRIGHT$(V$,1)=" "THENV$=V$+" " 885 :V$=V$+RIGHT$(WK$,3) 890 PRINT" "PN$(I);TAB(28);V$:PRINT"[192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192]" 895 :PA(I)=-1 900 NEXT 905 RETURN 910 I=.:PT=.:GOSUB545:PRINT"[145]"; 915 FORSN=1TO6:SQ=PS(.,SN) 920 IFSA(SN)<95ANDSQ>.THENPRINT"SELL";SQ;SN$(SN):Z=Z+1:GOSUB670 925 IFZ=10THENPRINT"[147] 930 [130] 935 [129]K[178]1[164]1500:[130] 940 [139]PA(.)[179]600[167][141]1005:[142] 945 WK[178]0:SQ[178]999999 950 [129]J[178]1[164]6 955 [139]SA(J)[177]105[175]PS(.,J)[179]SQ[167]WK[178]J:SQ[178]PS(.,J) 960 [130] 965 SN[178]WK 970 [139]WK[178].[167][141]1005:[142] 975 SQ[178]500:[141]645 980 [139]SN[178]7[167][141]1005:[142] 985 [139]Z[178]10[167][153]"LOAD 990 PRINT"BUY 500 ";SN$(SN):Z=Z+1 995 FORK=1TO1000:NEXT 1000 GOTO945 1005 FORK=1TO300:NEXT 1010 IFPT=1THENGOSUB545 1015 IFPT=.THENPRINT:PRINT"NO TRANSACTIONS" 1020 FORK=1TO2000:NEXT 1025 RETURN 1030 PRINT"STOCK#? [157][157]"; 1035 IX=8:ML=1:GOSUB1150:SN=VAL(WK$) 1040 IFSN<1ORSN>6THENPRINT:PRINT"[145][145][145]":GOTO1030 1045 IFBSTHENGOSUB1250 1050 PRINT:PRINT"QUANTITY? "; 1055 ML=6:IX=10:GOSUB1150:SQ=VAL(WK$) 1060 WK=SQ-INT(SQ/500)*500 1065 IFWKTHENPRINT"[145] [157][157][157][157][157][157][157]";:GOTO1055 1070 RETURN 1075 S1=1024+764+(D1-1)*6:C1=S1+54272 1080 FORK=.TO190STEP10 1085 WK=64 1090 IFSA(D1)>KTHENWK=160 1095 IFSA(D1)=KTHENWK=98 1100 POKES1,WK:POKES1+1,WK:IFWK>64THENPOKEC1,C(D1):POKEC1+1,C(D1):GOTO1115 1105 IFK=100THENPOKEC1,2:POKEC1+1,2:GOTO1115 1110 POKEC1,12:POKEC1+1,12 1115 S1=S1-40:C1=C1-40 1120 NEXT 1125 FORK=1TO500:NEXT 1130 RETURN 1135 PRINT"[147][159] BAY STREET "; 1140 PRINT" FROM ROGER D. BURGE ":RETURN 1150 WK$="":POKE198,. 1155 POKE211,IX:POKE204,. 1160 POKE207,.:GETIT$:IFIT$=""THEN1160 1165 IT=ASC(IT$):IFIT=13THEN1210 1170 IFIT=20THEN1190 1175 IFIT<31ORIT>96THEN1160 1180 IFLEN(WK$)=MLTHEN1160 1185 PRINTIT$;:WK$=WK$+IT$:GOTO1160 1190 IFLEN(WK$)=.THEN1160 1195 WK$=LEFT$(WK$,LEN(WK$)-1) 1200 IFPEEK(207)=.THENPRINT"[157] [157][157]";:GOTO1160 1205 GOTO1200 1210 IFPEEK(207)=.THENPOKE204,1:PRINT" ":RETURN 1215 GOTO1210 1220 PRINTX$"WOULD YOU LIKE TO PLAY AGAIN? (Y/N) [157]";:IX=36:GOSUB1150 1225 IFWK$="Y"THENRUN 1230 IFWK$="N"THEN1240 1235 GOTO1220 1240 POKE53280,3:POKE53281,1:PRINT"[147]" 1245 END 1250 PU=INT((PA(I)*100/SA(SN))/500)*500 1255 PRINT"[158]YOU CAN BUY UP TO"PU"SHARES":PRINT"IN UNITS OF 5OO":RETURN 1260 RETURN 1265 POKE53280,.:PRINT"[145][145]":GOSUB1395:PRINT" WELCOME TO BAY STREET. 1270 [153]"HEART OF CANADA'S WORLD OF HIGH FINANCE!":[141]1395 1275 [153]" A GAME FOR 1 TO 6 PEOPLE....":[153]"AND YOUR 64 LIKES TO PLAY TOO. 1280 PRINT" HE'S THE BANKER AS WELL, BUT DON'T WORRY, HE NEVER CHEATS. 1285 [153]" NOTE: IN ONE PLAYER GAMES YOU MUST PLAYAGAINST YOUR 64. IN MULTI-"; 1290 [153]" PLAYER GAMES YOU CHOOSE WHETHER OR NOT TO LET HIM PLAY. 1295 PRINT" THE OBJECT OF THE GAME IS TO PLAY THE STOCK MARKET SUCCESSFULLY."; 1300 PRINT" YOU BUY AND SELL STOCKS (IN BLOCKS OF 500 SHARES) FROM SIX "; 1305 PRINT"CATEGORIES.":PRINT" THEN WATCH THE STOCKS RISE, FALL AND PAY "; 1310 PRINT"DIVIDENDS ON THE TORONTO STOCK EXCHANGE. 1315 [153]"PRINT PRESS ANY KEY TO CONTINUE... ":[151]198,. 1320 [161]A$:[139]A$[178]""[167]1320 1325 [141]1135:[141]1395 1330 [153]" IF A STOCK'S VALUE REACHES THE TOP IT 'SPLITS' AND YOU DOUBLE"; 1335 [153]" ANY SHARES YOU HAVE IN IT. 1340 PRINT" IF A STOCK'S VALUE DROPS BELOW ZERO THEN IT 'CRASHES' AND YOU "; 1345 PRINT"LOSE ANY STOCKYOU HAVE IN IT. 1350 [153]"DIVIDENDS ARE BASED ON THE MARKET VALUEOF THE STOCK AND HOW MUCH"; 1355 [153]" YOU HAVE. 1360 PRINT" WHEN BUYING OR SELLING, PRICES ARE BASED STRICTLY ON MARKET"; 1365 PRINT" VALUE. 1370 [153]" YOUR 64 WILL HANDLE ALL THE DETAILS. 1375 PRINT" DON' BE AFRAID TO TAKE CHANCES! 1380 [153]"PRINT PRESS ANY KEY TO PLAY. ":[151]198,. 1385 [161]A$:[139]A$[178]""[167]1385 1390 [151]53280,3:[141]1135:[142] 1395 [153]"PRINTON----------------------------------------";:[142]